package com.zmn.plat.business.interfaces.product.productgroup;

import java.util.ArrayList;
import java.util.List;

import com.zmn.common.dto.VtDTO;
import com.zmn.plat.common.dto.category.CategorySimpleProductGroupDRO;
import com.zmn.plat.model.entity.product.productgroup.ProductGroupQuery;
import org.springframework.data.mongodb.core.aggregation.ArrayOperators;

/**
 * 描述: 产品组基础接口类
 *
 * @author tanghongjun
 * @since 2020-08-19 11:18:36
 **/
public interface ProductGroupBService {

    /**
     * 根据业务类型和状态查询产品组ID和产品组名称VtDTO
     *
     * @param bizType
     *            业务类型
     * @param status
     *            状态
     * @return List<VtDTO>
     * @author tanghongjun
     * @since 2020年8月26日10:14:39
     */
    List<VtDTO> listVtByBizType(Integer bizType, Integer status);

    /**
     * 根据服务分类ID和后台二级产品分类ID和业务类型查询产品组信息
     * @param servCategId
     * @param categTwoId
     * @param bizType
     * @since 2020/10/14 10:38
     * @author linfeng
     * @return CategorySimpleProductGroupDRO
     */
    CategorySimpleProductGroupDRO findByCategIdAndBizType(Integer servCategId, Integer categTwoId, Integer bizType);

    /**
     * 根据服务分类ID和前台二级产品分类ID和业务类型查询产品组信息
     * @param servCategId
     * @param showCategTwoId
     * @param bizType
     * @since 2020/10/14 10:38
     * @author linfeng
     * @return CategorySimpleProductGroupDRO
     */
    CategorySimpleProductGroupDRO findByShowCategIdAndBizType(Integer servCategId, Integer showCategTwoId, Integer bizType);

    /**
     * 描述: 根据条件导出后台产品报表
     *
     * @param query
     *            查询条件
     * @return java.util.ArrayList<java.util.List>
     * @author tanghongjun
     * @since 2020年8月26日10:14:39
     **/
    ArrayList<List> outputProductExcel(ProductGroupQuery query);
}
